#include <iostream>
using namespace std;    


/*
    析构函数
        定义：
            ~类名(){}
        特点：没用返回值  没有参数
            对象地址空间被释放时，会自动调用析构函数
            程序没有定义析构函数时，编译器会自动生成一个默认析构函数
        应用：做收尾工作
        
*/

class Cat
{
public:
    Cat(int a, string n, float w)
    {
        age = a;
        name = n;
        weight = w;
    }
    ~Cat() // 析构函数
    {
        cout << "析构函数被调用" << endl;
    }
    void show()
    {
        cout << "猫的信息：" << endl;
        cout << "name:" << name << endl;
        cout << "age:" << age << endl;
        cout << "weight:" << weight << endl;
    }

private:
    string name; // 名字
    int age;    // 年龄
    float weight;

};



int main()
{
    Cat c1(10, "Tom", 5.5);
    c1.show();

    Cat *c2 = new Cat(12, "Jery", 15.5); 
    c2->show();
    delete c2;
    return 0;
}